﻿using DFGK_WMS.Model.Dto;
using DFGK_WMS.Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DFGK.IService
{
    public interface ITransferBinOrderService
    {
        /// <summary>
        /// 获取移库单列表
        /// </summary>
        /// <param name="key"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        List<TransferBinOrder> GetTransferBinOrderList(string? key,int status,int pageIndex,int pageSize,out int totalCount);

        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="m"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool AddTransferBinOrder(TransferBinOrder m, out string message);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool DelTransferBinOrder(long id,out string message);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="m"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool UpdTransferBinOrder(TransferBinOrder m, out string message);

        /// <summary>
        /// 根据主键获取对象信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        TransferBinOrder? GetTransferBinOrderById(long id);

        /// <summary>
        /// 开始移库
        /// </summary>
        /// <param name="m"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool StartTransferBinOrder(TransferBinOrderDTO m,out string message);

        /// <summary>
        /// 完成移库
        /// </summary>
        /// <param name="putcode"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool FinishTransferBinOrder(string putcode, out string message);
    }
}
